Tapestry ফ্রেমওয়ার্কে form component ব্যবহার করে ব্যবহারকারীদের ইনপুট গ্রহণ করা এবং তা প্রসেস করা সহজ এবং কার্যকর। Tapestry তে ফর্ম কম্পোনেন্টগুলি UI কম্পোনেন্টস যেমন textfields, buttons, checkboxes এবং submit actions অন্তর্ভুক্ত থাকে, যা ফর্ম ডেটা সংগ্রহ এবং প্রক্রিয়াকরণে সহায়তা করে।
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে ফর্ম কম্পোনেন্ট ব্যবহার করে ডেটা সংগ্রহ করা এবং তা প্রক্রিয়াকরণ করা যায়।
Tapestry ফ্রেমওয়ার্কে ফর্ম কম্পোনেন্টগুলি t:form
, t:textfield
, t:passwordfield
, t:checkbox
, t:button
, t:select
ইত্যাদি অন্তর্ভুক্ত থাকে। এই কম্পোনেন্টগুলোর মাধ্যমে আপনি সহজে ফর্ম তৈরি করতে পারেন।
ধরা যাক, আপনি একটি login form তৈরি করতে চান, যেখানে ব্যবহারকারী username এবং password প্রদান করবেন এবং একটি login বাটনে ক্লিক করে লগইন করবেন।
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login</h2>
<!-- Form Tag -->
<t:form t:id="loginForm">
<t:label value="Username" for="username"/>
<t:textfield t:id="username" value="username"/>
<t:label value="Password" for="password"/>
<t:passwordfield t:id="password" value="password"/>
<t:checkbox t:id="rememberMe" value="rememberMe" label="Remember Me" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login"/>
</t:form>
</body>
</html>
এখানে:
t:form
: এটি একটি ফর্ম তৈরি করে, যা ব্যবহারকারীর ইনপুট গ্রহণের জন্য ব্যবহৃত হয়।t:textfield
: এটি একটি টেক্সট ফিল্ড তৈরি করে যা ব্যবহারকারীকে username ইনপুট করতে দেয়।t:passwordfield
: এটি একটি পাসওয়ার্ড ফিল্ড তৈরি করে, যেখানে ইনপুট হিডেন থাকে।t:checkbox
: এটি একটি চেকবক্স তৈরি করে, যেখানে ব্যবহারকারী Remember Me চেক করতে পারেন।t:button
: এটি একটি বাটন তৈরি করে, যা ব্যবহারকারীকে লগইন করার জন্য ক্লিক করতে দেয়।এখন, ফর্মের ডেটা প্রক্রিয়া এবং সঠিকভাবে ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য একটি Java ক্লাস তৈরি করতে হবে। এই Java ক্লাসে Tapestry-এর ইনপুট ডেটা প্রক্রিয়াকরণ করা হয়।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
public class Login {
@Property
private String username; // Username field
@Property
private String password; // Password field
@Property
private boolean rememberMe; // Checkbox for remember me option
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to home page if login is successful
return Home.class;
} else {
// Stay on the login page if credentials are incorrect
return Login.class;
}
}
}
এখানে:
Tapestry আপনাকে ভ্যালিডেশন ফিচার সরবরাহ করে, যা ফর্ম ডেটা যাচাই করতে সহায়তা করে। আপনি Tapestry-এর বিল্ট-ইন data validation ফিচার ব্যবহার করতে পারেন।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.validator.annotations.Length;
public class Login {
@Property
@Length(min = 5, message = "Username must be at least 5 characters long")
private String username; // Username field
@Property
@Length(min = 6, message = "Password must be at least 6 characters long")
private String password; // Password field
@Property
private boolean rememberMe; // Checkbox for remember me option
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
return Home.class;
} else {
return Login.class;
}
}
}
এখানে:
ফর্ম ডেটা সাবমিট হওয়ার পরে, আপনি Tapestry তে action methods ব্যবহার করে ডেটা প্রসেস করতে পারেন এবং তার উপর ভিত্তি করে রেসপন্স প্রদান করতে পারেন।
Tapestry ফ্রেমওয়ার্কে form components ব্যবহার করা খুবই সহজ এবং ডাইনামিক। t:form
, t:textfield
, t:passwordfield
, t:checkbox
, এবং t:button
কম্পোনেন্ট ব্যবহার করে আপনি দ্রুত ফর্ম তৈরি করতে পারেন এবং Tapestry এর অটোমেটিক data binding এবং validation ফিচার ব্যবহার করে ইনপুট ডেটা প্রক্রিয়া করতে পারেন। Tapestry ফর্ম কম্পোনেন্টগুলির মাধ্যমে ইউজার ইন্টারফেস এবং ব্যাকএন্ড লজিকের মধ্যে একটি পরিষ্কার এবং কার্যকর সংযোগ তৈরি করা যায়।
Read more